package prog1.hausaufgabe2.primzahlen;
import java.io.*;   //für die tastatureingabe 

/**
 * @author moritz.platt@campus.tu-berlin.de
 */
public class main {
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String mengeS;
        int mengeInt;
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   //reader für tastatureingabe initialisieren
        
        mengeS = "1";    //variable wird als 1 initialisiert falls tatstaureingabe fehlschlägt
        try {   //  Tatstaureiungaben müssen per anforderung in try/catch gewrapped sein 
            System.out.println("Anzahl der zu generierenden Primzahlen:");
            mengeS = br.readLine();
        } catch(IOException ex) {}
        
        mengeInt = Integer.parseInt(mengeS,10);     // eingaben für mathematische modifikation in int wandeln
        
        int[] primzahlen = ermittlePrimzahl(mengeInt);
        
        System.out.println("Ermittelte Primzahlen:");
        
        int i = 0;
        for(i=0;i<primzahlen.length;i++) {
            System.out.println(primzahlen[i]);
        }
    }
    
    /**
     * @param menge Anzahl der auszugebenden Primzahlen
     */
    public static int[] ermittlePrimzahl(int menge){  
        int[] primZahlenAusgabe;
        primZahlenAusgabe = new int[menge];
        
        int gefundeneZahlen = 0;
        int i = 1;
        
        while (gefundeneZahlen < menge) {

            if (i == 1) {
                primZahlenAusgabe[gefundeneZahlen] = i;
                gefundeneZahlen++;
            } else if (i > 2) {     //Unser Primzahlentestalgorithmus funktioniert erst ab i=3, angelehnt an http://en.wikipedia.org/wiki/Primality_test#Naive_methods
                int innerI;
                for (innerI=2; innerI < i; innerI++){
                        int n = i % innerI;
                        if (n==0){
                                break;
                        } 
                }
                if(innerI == i){
                        primZahlenAusgabe[gefundeneZahlen] = i;
                        gefundeneZahlen++;
                }
            }
            i++;
        }
        
        return primZahlenAusgabe;
    }
}
